<?php
class PacotesController extends AppController {

	// TODO APAGAR EM CASCADE
	
	var $name = 'Pacotes';
	var $components = array('PEP');

	function index($id) {
		$this->Pacote->recursive = 0;
		$this->set('pacotes', $this->paginate());
	}
	

	
	function buscaPorProduto($idProduto = NULL){
		if(!is_null($idProduto)){
			$unidade = $this->PEP->getUnidadeByProdutoId($idProduto);
			$pacotes = $this->PEP->getPacotesByProdutoId($idProduto);
			if(isset($pacotes))
				return array('pacotes' =>$pacotes, 'unidade'=>$unidade);
		}
		else return NULL;
	}

	function add($idEmpacotamento = NULL) {
		if (!empty($this->data)) {
			$this->Pacote->create();
			$this->data['Pacote']['user_id'] = $this->Session->read('Auth.User.id_user');
			$this->data['Pacote']['ordem'] = $this->PEP->getLastOrdemByEmpacotamento($this->data['Pacote']['empacotamento_id'])+1;			
			$idEmpacotamento = $this->data['Pacote']['empacotamento_id'];
			if ($this->Pacote->save($this->data)) {
				$this->Session->setFlash(__('O pacote foi salvo', true));
				$this->redirect(array('action' => 'add', $idEmpacotamento));
			} else {
				$this->Session->setFlash(__('Pacote não salvo! Por favor, tente novamente!', true));
			}
		}
		$idProduto = $this->PEP->getProdutoByEmpacotamentoId($idEmpacotamento);
		if($idProduto == null){
			$this->Session->setFlash("Erro critico! Pacote não existe! Por favor, tente novamente!");
			$this->redirect(array('controller'=>'produtos', 'action'=>'index'));	
		}
		else{
			$unidades = $this->Pacote->Unidades->find('list', array('fields'=>array('id_unidade', 'unidade'),'order'=>'unidade ASC'));
			$pacoteGeral = $this->PEP->getPacoteByEmpacotamentoId($idEmpacotamento);
			$this->set(compact('unidades', 'idEmpacotamento', 'ordem', 'idProduto', 'pacoteGeral'));
		}
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid pacote', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Pacote->save($this->data)) {
				$this->Session->setFlash(__('The pacote has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Pacote não salvo! Por favor, tente novamente!', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Pacote->read(null, $id);
		}
		$empacotamentos = $this->Pacote->Empacotamento->find('list');
		$this->set(compact('empacotamentos'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for pacote', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Pacote->delete($id)) {
			$this->Session->setFlash(__('Pacote deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Pacote was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
}
?>